Vehicle dynamics actuator control systems and methods

ABSTRACT

A vehicle control system includes a first error module that determines a first yaw error based on a difference between a yaw rate of the vehicle and a target yaw rate. A second error module determines a second yaw error based on the first yaw error and a target yaw error. A target yaw error module sets the target yaw error based on a skill level of a driver of the vehicle. An adjustment module selectively one of increases and decreases a target adjustment when the second yaw error is greater than a first predetermined threshold. An actuator control module, in response to the increase in the target adjustment, actuates a dynamics actuator of the vehicle.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to U.S. patent application Ser. No.15/412,511 filed on Jan. 23, 2017, and 15/412,661 filed on Jan. 23,2017. The entire disclosures of the above applications are incorporatedherein by reference.

FIELD

The present disclosure relates to systems and methods for controllingactuators of a vehicle that vary vehicle dynamics.

INTRODUCTION

The introduction provided here is for the purpose of generallypresenting the context of the disclosure. Work of the presently namedinventors, to the extent it is described in this introduction section aswell as other aspects of the description are neither expressly norimpliedly admitted as prior art against the present disclosure.

Internal combustion engines combust an air and fuel mixture withincylinders to drive pistons, which produces torque. In some types ofengines, air flow into the engine may be regulated via a throttle. Thethrottle may adjust throttle area, which increases or decreases air flowinto the engine. As the throttle area increases, the air flow into theengine increases.

A fuel control system adjusts the rate that fuel is injected to providea desired air/fuel mixture to the cylinders and/or to achieve arequested amount of torque. Increasing the amount of air and fuelprovided to the cylinders generally increases the torque output of theengine. The engine may output torque to wheels via driveline components,such as a transmission, one or more differentials, and a plurality ofshafts. Some vehicles, such as hybrid vehicles and electric vehicles,additionally or alternatively include one or more electric motors thatoutput torque to wheels via driveline components.

SUMMARY

In a feature, a vehicle control system includes a first error modulethat determines a first yaw error based on a difference between a yawrate of the vehicle and a target yaw rate. A second error moduledetermines a second yaw error based on the first yaw error and a targetyaw error. A target yaw error module sets the target yaw error based ona skill level of a driver of the vehicle. An adjustment moduleselectively one of increases and decreases a target adjustment when thesecond yaw error is greater than a first predetermined threshold. Anactuator control module, in response to the increase in the targetadjustment, actuates a dynamics actuator of the vehicle.

In further features, a thresholds module determines the firstpredetermined threshold based on the skill level of the driver.

In further features, a target yaw module determines the target yaw rateof the vehicle based on at least one of (i) a lateral acceleration ofthe vehicle, (i) a longitudinal acceleration of the vehicle, (iii) asteering wheel angle, (iv) an accelerator pedal position, and (v) avehicle speed.

In further features: an averaging module determines an average of aplurality of values of the first yaw error, and the second error moduledetermines the second yaw error based on a difference between theaverage and the target yaw error.

In further features, the skill level of the driver is selected from agroup comprising a first skill level, a second skill level indicative ofa greater level of skill than the first skill level, and a third skilllevel indicative of a greater level of skill than the second skilllevel.

In further features, the target yaw error module sets the target yawerror further based on a handling type of the vehicle.

In further features, the handling type is selected from a groupconsisting of oversteer, understeer, and neutral.

In further features: an integrator module determines an accumulatederror based on a mathematical integral based on the second yaw error; ascaling module determines a scaled error based on a product of theaccumulated error and a scalar value; and the adjustment moduleselectively one of increases and decreases the target adjustment inresponse to determinations that both (i) the second yaw error is greaterthan the first predetermined threshold and (ii) the scaled error isgreater than a second predetermined threshold.

In further features, a thresholds module, based on the skill level ofthe driver, determines both the first predetermined threshold and thesecond predetermined threshold.

In further features, the dynamic actuator includes one of: an electroniclimited slip differential; an electronic power steering motor; anautomatic braking system (ABS) actuator; a ride control actuator; and anaerodynamic actuator.

In a feature, a vehicle control method includes: determining a first yawerror based on a difference between a yaw rate of the vehicle and atarget yaw rate; determining a second yaw error based on the first yawerror and a target yaw error; setting the target yaw error based on askill level of a driver of the vehicle; selectively one of increasingand decreasing a target adjustment when the second yaw error is greaterthan a first predetermined threshold; and, in response to the increasein the target adjustment, actuating a dynamics actuator of the vehicle.

In further features, the vehicle control method further includesdetermining the first predetermined threshold based on the skill levelof the driver.

In further features, the vehicle control method further includesdetermining the target yaw rate of the vehicle based on at least one of(i) a lateral acceleration of the vehicle, (i) a longitudinalacceleration of the vehicle, (iii) a steering wheel angle, (iv) anaccelerator pedal position, and (v) a vehicle speed.

In further features, the vehicle control method further includes:determining an average of a plurality of values of the first yaw error,where determining the second yaw error includes determining the secondyaw error based on a difference between the average and the target yawerror.

In further features, the vehicle control method further includesselecting the skill level of the driver from a group comprising a firstskill level, a second skill level indicative of a greater level of skillthan the first skill level, and a third skill level indicative of agreater level of skill than the second skill level.

In further features, setting the target yaw error includes setting thetarget yaw error further based on a handling type of the vehicle.

In further features, the vehicle control method further includesselecting the handling type from a group consisting of oversteer,understeer, and neutral.

In further features, the vehicle control method further includes:determining an accumulated error based on a mathematical integral basedon the second yaw error; and determining a scaled error based on aproduct of the accumulated error and a scalar value, where selectivelyone of increasing and decreasing the target adjustment includesselectively one of increasing and decreasing the target adjustment inresponse to determinations that both (i) the second yaw error is greaterthan the first predetermined threshold and (ii) the scaled error isgreater than a second predetermined threshold.

In further features, the vehicle control method further includes, basedon the skill level of the driver, determining both the firstpredetermined threshold and the second predetermined threshold.

In further features, the dynamic actuator includes one of: an electroniclimited slip differential; an electronic power steering motor; anautomatic braking system (ABS) actuator; a ride control actuator; and anaerodynamic actuator.

Further areas of applicability of the present disclosure will becomeapparent from the detailed description, the claims and the drawings. Thedetailed description and specific examples are intended for purposes ofillustration only and are not intended to limit the scope of thedisclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure will become more fully understood from thedetailed description and the accompanying drawings, wherein:

FIG. 1 is a functional block diagram of an example powertrain system;

FIG. 2 is a functional block diagram of an example vehicle dynamicscontrol system;

FIG. 3 is a functional block diagram of an example dynamics controlmodule;

FIG. 4 is a functional block diagram of an example classificationmodule;

FIG. 5 is an example graph of driver skill values as a function of bothlateral and longitudinal acceleration;

FIG. 6 is a flowchart depicting an example method of determining a skilllevel of the driver and a handling type; and

FIG. 7 is a flowchart depicting an example method of controllingdynamics actuators of a vehicle based on a skill level of a driverand/or a handling type.

In the drawings, reference numbers may be reused to identify similarand/or identical elements.

DETAILED DESCRIPTION

Some vehicles include one or more actuators that can be adjusted to varyvehicle dynamics. Such actuators can be called dynamics actuators.Examples of dynamics actuators include, but are not limited to actuatorsof an electronic limited slip differential, an electronic power steeringsystem, an automatic braking system, a ride control system, and anaerodynamic system. Control of dynamics actuators can be tuned fordrivers of varying skill levels and handling types, such asoversteering, understeering, and neutral steering.

According to the present application, a dynamics control moduledetermines a skill level of the driver, such as novice, skilled, orexpert. The dynamics control module determines the skill level of thedriver based on both lateral and longitudinal acceleration of thevehicle. For example, the dynamics control module may determine theskill level using a mapping of skill level values indexed by sets oflateral and longitudinal acceleration. Higher lateral or longitudinalacceleration, and more particularly higher lateral and longitudinalacceleration, may indicate a higher skill level of the driver, such asskilled or expert.

The dynamics control module also determines a handling type, such asoversteering, understeering, or neutral steering. The dynamics controlmodule may determine the handling type, for example, based on a gradientof steering wheel angle. The vehicle may be controlled for understeerwhen lower steering wheel angle gradients are present than when thevehicle is controlled for neutral handling. The vehicle may becontrolled for neutral handling when lower steering wheel angle gradientare present than when the vehicle is controlled for oversteering.

The dynamics control module determines when and how to control actuationof the dynamics actuators based on the skill level and the handlingtype. In this way, the dynamics control module tailors actuation of thedynamics actuators to the driver's skill level and the handling type.This allows drivers of different skill levels to experience similar oridentical vehicle dynamics and also allows one driver to experienceconsistent vehicle dynamics across different road conditions, handlingtypes, and different operating conditions.

Referring now to FIG. 1, a functional block diagram of an examplepowertrain system 100 is presented. The powertrain system 100 of avehicle includes an engine 102 that combusts an air/fuel mixture toproduce torque. The vehicle may be non-autonomous or autonomous.

Air is drawn into the engine 102 through an intake system 108. Theintake system 108 may include an intake manifold 110 and a throttlevalve 112. For example only, the throttle valve 112 may include abutterfly valve having a rotatable blade. An engine control module (ECM)114 controls a throttle actuator module 116, and the throttle actuatormodule 116 regulates opening of the throttle valve 112 to controlairflow into the intake manifold 110.

Air from the intake manifold 110 is drawn into cylinders of the engine102. While the engine 102 may include multiple cylinders, forillustration purposes a single representative cylinder 118 is shown. Forexample only, the engine 102 may include 2, 3, 4, 5, 6, 8, 10, and/or 12cylinders. The ECM 114 may instruct a cylinder actuator module 120 toselectively deactivate some of the cylinders under some circumstances,which may improve fuel efficiency.

The engine 102 may operate using a four-stroke cycle or another suitableengine cycle. The four strokes of a four-stroke cycle, described below,will be referred to as the intake stroke, the compression stroke, thecombustion stroke, and the exhaust stroke. During each revolution of acrankshaft (not shown), two of the four strokes occur within thecylinder 118. Therefore, two crankshaft revolutions are necessary forthe cylinder 118 to experience all four of the strokes. For four-strokeengines, one engine cycle may correspond to two crankshaft revolutions.

When the cylinder 118 is activated, air from the intake manifold 110 isdrawn into the cylinder 118 through an intake valve 122 during theintake stroke. The ECM 114 controls a fuel actuator module 124, whichregulates fuel injection to achieve a desired air/fuel ratio. Fuel maybe injected into the intake manifold 110 at a central location or atmultiple locations, such as near the intake valve 122 of each of thecylinders. In various implementations (not shown), fuel may be injecteddirectly into the cylinders or into mixing chambers/ports associatedwith the cylinders. The fuel actuator module 124 may halt injection offuel to cylinders that are deactivated.

The injected fuel mixes with air and creates an air/fuel mixture in thecylinder 118. During the compression stroke, a piston (not shown) withinthe cylinder 118 compresses the air/fuel mixture. The engine 102 may bea compression-ignition engine, in which case compression causes ignitionof the air/fuel mixture. Alternatively, the engine 102 may be aspark-ignition engine, in which case a spark actuator module 126energizes a spark plug 128 in the cylinder 118 based on a signal fromthe ECM 114, which ignites the air/fuel mixture. Some types of engines,such as homogenous charge compression ignition (HCCI) engines mayperform both compression ignition and spark ignition. The timing of thespark may be specified relative to the time when the piston is at itstopmost position, which will be referred to as top dead center (TDC).

The spark actuator module 126 may be controlled by a timing signalspecifying how far before or after TDC to generate the spark. Becausepiston position is directly related to crankshaft rotation, operation ofthe spark actuator module 126 may be synchronized with the position ofthe crankshaft. The spark actuator module 126 may disable provision ofspark to deactivated cylinders or provide spark to deactivatedcylinders.

During the combustion stroke, the combustion of the air/fuel mixturedrives the piston down, thereby driving the crankshaft. The combustionstroke may be defined as the time between the piston reaching TDC andthe time when the piston returns to a bottom most position, which willbe referred to as bottom dead center (BDC).

During the exhaust stroke, the piston begins moving up from BDC andexpels the byproducts of combustion through an exhaust valve 130. Thebyproducts of combustion are exhausted from the vehicle via an exhaustsystem 134.

The intake valve 122 may be controlled by an intake camshaft 140, whilethe exhaust valve 130 may be controlled by an exhaust camshaft 142. Invarious implementations, multiple intake camshafts (including the intakecamshaft 140) may control multiple intake valves (including the intakevalve 122) for the cylinder 118 and/or may control the intake valves(including the intake valve 122) of multiple banks of cylinders(including the cylinder 118). Similarly, multiple exhaust camshafts(including the exhaust camshaft 142) may control multiple exhaust valvesfor the cylinder 118 and/or may control exhaust valves (including theexhaust valve 130) for multiple banks of cylinders (including thecylinder 118). While camshaft based valve actuation is shown and hasbeen discussed, camless valve actuators may be implemented. Also whileseparate intake and exhaust camshafts are shown, one camshaft havinglobes for both the intake and exhaust valves may be used.

The cylinder actuator module 120 may deactivate the cylinder 118 bydisabling opening of the intake valve 122 and/or the exhaust valve 130.The time when the intake valve 122 is opened may be varied by an intakecam phaser 148. The time when the exhaust valve 130 is opened may bevaried by an exhaust cam phaser 150. A phaser actuator module 158 maycontrol the intake cam phaser 148 and the exhaust cam phaser 150 basedon signals from the ECM 114. In various implementations, cam phasing maybe omitted. Variable valve lift (not shown) may also be controlled bythe phaser actuator module 158. In various other implementations, theintake valve 122 and/or the exhaust valve 130 may be controlled byactuators other than a camshaft, such as electromechanical actuators,electrohydraulic actuators, electromagnetic actuators, etc.

The engine 102 may include zero, one, or more than one boost device thatprovides pressurized air to the intake manifold 110. For example, FIG. 1shows a turbocharger including a turbocharger turbine 160-1 that isdriven by exhaust gases flowing through the exhaust system 134. Asupercharger is another type of boost device.

The turbocharger also includes a turbocharger compressor 160-2 that isdriven by the turbocharger turbine 160-1 and that compresses air leadinginto the throttle valve 112. A wastegate 162 controls exhaust flowthrough and bypassing the turbocharger turbine 160-1. Wastegates canalso be referred to as (turbocharger) turbine bypass valves. Thewastegate 162 may allow exhaust to bypass the turbocharger turbine 160-1to reduce intake air compression provided by the turbocharger. The ECM114 may control the turbocharger via a wastegate actuator module 164.The wastegate actuator module 164 may modulate the boost of theturbocharger by controlling an opening of the wastegate 162.

A cooler (e.g., a charge air cooler or an intercooler) may dissipatesome of the heat contained in the compressed air charge, which may begenerated as the air is compressed. Although shown separated forpurposes of illustration, the turbocharger turbine 160-1 and theturbocharger compressor 160-2 may be mechanically linked to each other,placing intake air in close proximity to hot exhaust. The compressed aircharge may absorb heat from components of the exhaust system 134.

The engine 102 may include an exhaust gas recirculation (EGR) valve 170,which selectively redirects exhaust gas back to the intake manifold 110.The EGR valve 170 may receive exhaust gas from upstream of theturbocharger turbine 160-1 in the exhaust system 134. The EGR valve 170may be controlled by an EGR actuator module 172.

Crankshaft position may be measured using a crankshaft position sensor180. An engine speed may be determined based on the crankshaft positionmeasured using the crankshaft position sensor 180. A temperature ofengine coolant may be measured using an engine coolant temperature (ECT)sensor 182. The ECT sensor 182 may be located within the engine 102 orat other locations where the coolant is circulated, such as a radiator(not shown).

A pressure within the intake manifold 110 may be measured using amanifold absolute pressure (MAP) sensor 184. In various implementations,engine vacuum, which is the difference between ambient air pressure andthe pressure within the intake manifold 110, may be measured. A massflow rate of air flowing into the intake manifold 110 may be measuredusing a mass air flow (MAF) sensor 186. In various implementations, theMAF sensor 186 may be located in a housing that also includes thethrottle valve 112.

Position of the throttle valve 112 may be measured using one or morethrottle position sensors (TPS) 190. A temperature of air being drawninto the engine 102 may be measured using an intake air temperature(IAT) sensor 192. One or more other sensors 193 may also be implemented.The other sensors 193 include an accelerator pedal position (APP)sensor, a brake pedal position (BPP) sensor, may include a clutch pedalposition (CPP) sensor (e.g., in the case of a manual transmission), asteering wheel angle (SWA) sensor, and may include one or more othertypes of sensors. An APP sensor measures a position of an acceleratorpedal within a passenger cabin of the vehicle. A BPP sensor measures aposition of a brake pedal within a passenger cabin of the vehicle. A CPPsensor measures a position of a clutch pedal within the passenger cabinof the vehicle. The other sensors 193 may also include one or moreacceleration sensors that measure longitudinal (e.g., fore/aft)acceleration of the vehicle and latitudinal acceleration of the vehicle.An accelerometer is an example type of acceleration sensor, althoughother types of acceleration sensors may be used. The ECM 114 may usesignals from the sensors to make control decisions for the engine 102.

The ECM 114 may communicate with a transmission control module 194, forexample, to coordinate engine operation with gear shifts in atransmission 195. The ECM 114 may communicate with a hybrid controlmodule 196, for example, to coordinate operation of the engine 102 and amotor generator unit (MGU) 198. While the example of one MGU isprovided, multiple MGUs and/or electric motors may be implemented. Eachsystem that varies an engine parameter may be referred to as an engineactuator. Each engine actuator has an associated actuator value. Forexample, the throttle actuator module 116 may be referred to as anengine actuator, and the throttle opening area may be referred to as theactuator value. In the example of FIG. 1, the throttle actuator module116 achieves the throttle opening area by adjusting an angle of theblade of the throttle valve 112.

The spark actuator module 126 may also be referred to as an engineactuator, while the corresponding actuator value may be the amount ofspark advance relative to cylinder TDC. Other engine actuators mayinclude the cylinder actuator module 120, the fuel actuator module 124,the phaser actuator module 158, the wastegate actuator module 164, andthe EGR actuator module 172. For these engine actuators, the actuatorvalues may correspond to a cylinder activation/deactivation sequence,fueling rate, intake and exhaust cam phaser angles, target wastegateopening, and EGR valve opening, respectively.

The ECM 114 may control the actuator values in order to cause the engine102 to output torque based on a torque request. The ECM 114 maydetermine the torque request, for example, based on one or more driverinputs, such as an APP, a BPP, a CPP, and/or one or more other suitabledriver inputs. The ECM 114 may determine the torque request, forexample, as a function of the driver input(s) using one or moreequations and/or lookup tables that relate the driver input(s) to torquerequests.

Under some circumstances, the hybrid control module 196 controls the MGU198 to output torque, for example, to supplement engine torque output.The hybrid control module 196 applies electrical power from a battery199 to the MGU 198 to cause the MGU 198 to output positive torque. Whilethe example of the battery 199 is provided, more than one battery may beused to supply power to the MGU 198. The MGU 198 may output torque, forexample, to the engine 102, to an input shaft of the transmission 195,to an output shaft of the transmission 195, or to another torquetransfer device of the powertrain of the vehicle. The battery 199 may bededicated for the MGU 198 and one or more other batteries may supplypower for other vehicle functions.

Under other circumstances, the hybrid control module 196 may control theMGU 198 to convert mechanical energy of the vehicle into electricalenergy. The hybrid control module 196 may control the MGU 198 to convertmechanical energy into electrical energy, for example, to recharge thebattery 199. This may be referred to as regeneration. While the examineof an engine system including both the engine 102 and the MGU 198 isprovided, the present application is also applicable to vehicles thatinclude only an engine for vehicle propulsion and vehicles that includeonly one or more electric motors and/or MGUs for vehicle propulsion.

FIG. 2 is a functional block diagram of a vehicle dynamics controlsystem including one or more dynamics actuators 204 of the vehicle, adynamics control module 208, and a communication bus 210. The dynamicscontrol module 208, the ECM 114, and one or more other vehicle controlmodules 214 communicate via the communication bus 210. For example only,the communication bus 210 may include a car area network (CAN) bus oranother suitable type of communication bus. While the example of onecommunication bus is provided, two or more communication busses may beused. Examples of the other vehicle control modules 214 include thetransmission control module 195, the hybrid control module 196, andother vehicle control modules. In various implementations, functionalityof one or more control modules of the vehicle may be combined within asingle module.

The dynamics actuators 204 vary vehicle dynamics. The dynamics controlmodule 208 controls actuation of the dynamics actuators 204, asdiscussed further below. For example, an electronic limited slipdifferential (ELSD) actuator module 212 may control an ELSD 216 based onsignals from the dynamics control module 208. The ELSD 216 regulates arotational speed of one drive shaft relative to a rotational speed ofanother drive shaft of the vehicle. An electronic power steering (EPS)actuator module 220 controls an EPS motor 224 based on signals from thedynamics control module 208. The EPS motor 224 controls steering(turning) of wheels of the vehicle. The dynamics control module 208 maygenerate the signals for controlling the EPS motor 224, for example,based on a steering wheel angle (SWA) measured using one or more SWAsensors. The SWA sensors measure angular displacement of a steeringwheel relative to a predetermined angle (e.g., where the vehicle shouldtravel along its longitudinal axis) of the steering wheel. A userrotates the steering wheel to request turning of the vehicle.

An automatic braking system (ABS) actuator module 228 controls actuationof one or more ABS actuators 232 based on signals from the dynamicscontrol module 208. The ABS actuator(s) 232 may control brake fluid flowto and from, and therefore brake fluid pressure applied to, brakecalipers of the vehicle. A ride actuator module 236 controls ridecontrol actuators 240, such as magnetic ride control actuators oranother type of electronic ride control actuator, based on signals fromthe dynamics control module 208. One ride control actuator may beimplemented at each wheel of the vehicle. The ride control actuators 240may control, for example, ride height and damping. An aero actuatormodule 244 controls one or more aerodynamic actuators 248 based onsignals from the dynamics control module 208. Examples of aerodynamicactuators include, for example, spoilers and splitters. The aerodynamicactuator(s) 248 are actuatable to vary aerodynamics, downforce, andlift. While examples of the dynamics actuators 204 are provided, thepresent application is also applicable to other dynamics actuators ofvehicles.

FIG. 3 is a functional block diagram of the dynamics control module 208.A track module 304 determines whether the driver of the vehicle isdriving the vehicle in a track state or not. The track module 304 sets atrack signal 308 to a first state when the driver is driving the vehiclein the track state and sets the track signal 308 to a second state whenthe driver is not driving the vehicle in the track state. As discussedfurther below, when in the track state, one or more of the dynamicsactuators 204 may be controlled and/or adjusted based on vehicle yaw andclassification of characteristics of the driver.

The track module 304 may determine whether the driver is driving thevehicle in the track state, for example, based on a vehicle speed (VS)312 and a lateral acceleration 316 of the vehicle. For example, thetrack module 304 may increment a counter value when both the vehiclespeed 312 is greater than a predetermined speed and the lateralacceleration 316 (e.g., a magnitude) is greater than a predeterminedacceleration. The track module 304 may decrement the counter value whenat least one of the vehicle speed 312 is less than the predeterminedspeed and the lateral acceleration 316 is less than the predeterminedacceleration.

The track module 304 may set the track signal 308 to the first statewhen the counter value is greater than a predetermined value that isgreater than zero. When the counter value is less than the predeterminedvalue, the track module 304 may set the track signal 308 to the secondstate. The vehicle speed 312 may be determined, for example, based on anaverage of one or more wheel speeds of the vehicle. Wheel speeds may bemeasured using wheel speed sensors. The lateral acceleration 316 may be,for example, measured using a lateral acceleration sensor. Furtherinformation regarding determining whether the vehicle is being driven ona track (e.g., the first state) or not (e.g., the second state) may befound in commonly assigned U.S. Pat. No. 6,408,229, which isincorporated herein in its entirety.

A classification module 320 generates a classification 324 for thedriver of the vehicle. The classification 324 may include a skill levelof the driver, such as novice, skilled, or expert, although the skilllevels may be named differently and a greater or lesser number of skilllevels may be used. For example, first, second, and third skill levelsmay be used where the second skill level indicates a higher skill levelthan the first skill level, and the third skill level indicates a higherskill level than the second skill level.

For some (e.g., only skilled and expert) or all skill levels, theclassification 324 may also include a handling type, such as oversteer,neutral, or understeer. The handling type may indicate whether thevehicle is being controlled to account for oversteer, understeer, orneutrally.

When the track signal 308 is in the first state, the classificationmodule 320 sets the classification based on the lateral acceleration316, a steering wheel angle (SWA) 328, and a longitudinal acceleration332 of the vehicle. The SWA 328 may be, for example, measured using oneor more steering wheel angle sensors. The longitudinal acceleration 332may be, for example, measured using one or more longitudinalacceleration sensors. When the track signal 308 is in the second state,the classification module 320 may set the classification 324 to indicateno classification (of skill level or handling type).

FIG. 4 is a functional block diagram of an example implementation of theclassification module 320. The SWA 328 may be sampled at a predeterminedrate. A rate of change module 404 determines SWA rate of change (ROC)408 based on a difference between samples of the SWA 328 (e.g., apresent sample and a last sample) and the period between those samples.The period between consecutive samples corresponds to the predeterminedrate.

A first average module 412 determines an average SWA ROC 416 based on anaverage of a plurality of the SWA ROCs 408. For example, the firstaverage module 412 may set the average SWA ROC 416 based on or equal toan average of the most recent predetermined number of the SWA ROCs 408.The first average module 412 may, for example, sum the predeterminednumber of the most recent SWA ROCs 408 and divide the sum by thepredetermined number.

A handling module 420 determines a handling type 424 of the driver basedon the average SWA ROC 416. For example, the handling module 420 may setthe handling type 424 to oversteer when the average SWA ROC 416 isgreater than a first predetermined ROC, such as approximately 48 degreesper second or another suitable ROC. The handling module 420 may set thehandling type 424 to understeer when the average SWA ROC 416 is lessthan a second predetermined ROC that is less than the firstpredetermined ROC, such as approximately 38 degrees per second oranother suitable ROC. The handling module 420 may set the handling type424 to neutral when the average SWA ROC 416 is between the firstpredetermined ROC and the second predetermined ROC.

In various implementations, the first and second predetermined ROCs maybe set based on the skill level of the driver. For example, a first setof first and second predetermined ROCs may be used when the skill levelis expert and a second set of first and second predetermined ROCs whenthe driver's skill level is skilled, etc. An example table of SWA ROCsobserved for expert skill level drivers is provided below.

Expert Expert Expert Oversteer Neutral Understeer SWA ROC 50-55 40-4530-35 (Deg/Sec)

A skill module 428 determines a skill value 432 based on thelongitudinal acceleration 332 and the lateral acceleration 316. Thelateral and longitudinal accelerations 316 and 332 may be sampled at apredetermined rate. Each skill value corresponds to a skill level of thedriver for that lateral and longitudinal acceleration. The skill module428 determines the skill value 432 for a given longitudinal and lateralacceleration using a skill value function 436. The skill value function436 may be, for example, one or more equations that relate lateral andlongitudinal acceleration values to skill values. As another equation,the skill value function 436 may be a three-dimensional mapping of skillvalues indexed by sets of lateral and longitudinal acceleration values.In various implementations, the skill value function 436 may furtherinvolve vehicle speed and the skill module 428 may determine the skillvalue 432 further based on the vehicle speed 312.

FIG. 5 includes an example of graph of skill values 502 as a function ofboth lateral acceleration 504 and longitudinal acceleration 508.Generally speaking, the skill values increase as the lateralacceleration increases or decreases away from 0 lateral acceleration anddecrease as the lateral acceleration approaches 0 lateral acceleration.The skill values also and independently increase as the longitudinalacceleration increases or decreases away from 0 longitudinalacceleration and decrease as the longitudinal acceleration approaches 0longitudinal acceleration. In other words, the skill values increase asat least one of: (i) a magnitude of lateral acceleration increases and(ii) a magnitude of longitudinal acceleration increases.

The skill values increase more rapidly as both lateral and longitudinalacceleration move away from 0. This may occur as longitudinalacceleration becomes positive and lateral acceleration becomes positive,as longitudinal acceleration becomes positive and lateral accelerationbecomes negative, as longitudinal acceleration becomes negative andlateral acceleration becomes positive, and as longitudinal accelerationbecomes negative and lateral acceleration becomes negative.

In other words, the skill values increase at a first rate as lateralacceleration becomes more positive given a constant longitudinalacceleration, and the skill values increase at a second rate as lateralacceleration becomes more positive and longitudinal acceleration becomesone of (i) more positive and (ii) more negative, the second rate beinggreater than the first rate. Additionally, the skill values increase ata first rate as lateral acceleration becomes more negative given aconstant longitudinal acceleration, and the skill values increase at asecond rate as lateral acceleration becomes more negative andlongitudinal acceleration becomes one of (i) more positive and (ii) morenegative, the second rate being greater than the first rate.Additionally, the skill values increase at a first rate as longitudinalacceleration becomes more positive given a constant lateralacceleration, and skill values increase at a second rate as longitudinalacceleration becomes more positive and lateral acceleration becomes oneof (i) more positive and (ii) more negative, the second rate beinggreater than the first rate. Additionally, the skill values increase ata first rate as longitudinal acceleration becomes more negative given aconstant lateral acceleration, and the skill values increase at a secondrate as longitudinal acceleration becomes more negative and lateralacceleration becomes one of (i) more positive and (ii) more negative,the second rate being greater than the first rate. The skill values mayincrease and decease at linear or non-linear rates. In the example ofthe further inclusion of vehicle speed, the skill module increases theskill value as at least one of (i) a magnitude of the lateralacceleration increases and (ii) a magnitude of the longitudinalacceleration increases and (iii) as vehicle speed increases. For valuesof a set of the lateral acceleration 316 and the longitudinalacceleration 332 that fall between entries of skill value lookup table,the skill module 428 may determine the skill value 432 usinginterpolation, such as linear interpolation.

Referring back to FIG. 4, a second average module 440 determines anaverage skill value 444 based on an average of a plurality of the skillvalues 432. For example, the second average module 440 may set theaverage skill value 444 based on or equal to an average of the mostrecent predetermined number of the skill values 432. The second averagemodule 440 may, for example, sum the predetermined number of the mostrecent skill values 432 and divide the sum by the predetermined number.

A skill level module 448 determines a skill level 452 of the driver ofthe vehicle based on the average skill value 444. For example, the skilllevel module 448 may set the skill level 452 to expert when the averageskill value 444 is greater than a first predetermined value. The skilllevel module 448 may set the skill level 452 to novice when the averageskill value 444 is less than a second predetermined value that is lessthan the first predetermined value. The skill level module 448 may setthe skill level 452 to skilled when the average skill value 444 isbetween the first predetermined value and the second predeterminedvalue. For example only, based on the skill value function 436 providingskill values that range from 0.0 to 1.0 and that increase and decreaseas described above, the first predetermined value may be approximately0.7 or another suitable value, and the second predetermined value may beapproximately 0.4 or another suitable value. While the example ofsetting the skill level 452 to novice, skilled, or expert is provided, afewer (e.g., 2) or greater (more than 3) number of skill levels may beused with a corresponding number of predetermined values.

When the track signal 308 is in the second state, 1 classificationgeneration module 456 may set the classification 324 to indicate noclassification. When the track signal 308 is in the first state, theclassification generation module 456 generates the classification 324 toinclude the skill level 452 and the handling type 424. For one or moreskill levels, such as novice, the classification generation module 456may generate the classification 324 to include the skill level 452 andnot the handling type 424.

FIG. 6 is a flowchart depicting an example method of classifyinghandling type and skill level of the driver. At 604, the classificationgeneration module 456 may determine whether the track signal 308 is inthe first state. If 604 is true, control may continue with 608. If 604is false, the classification generation module 456 may set theclassification 324 to indicate no classification, and control may end.

At 608, the rate of change module 404 may determine the SWA ROC 408based on the SWA 328. The first average module 412 determines theaverage SWA ROC 416 at 612. The first average module 412 determines theaverage SWA ROC 416 by averaging the predetermined number of SWA ROCsincluding the SWA ROC 408 determined at 608 and the predeterminednumber-1 SWA ROCs 408 from the last predetermined number-1 controlloops.

At 616, the skill module 428 may determine the skill value 432 based onboth the lateral acceleration 316 and the longitudinal acceleration 332using the skill value function 436. The skill module 428 may determinethe skill value 432 further based on the vehicle speed 312 in variousimplementations. The second average module 440 may determine the averageskill value 444 at 620 by averaging the predetermined number of skillvalues including the skill value 432 determined at 616 and thepredetermined number-1 skill values 432 from the last predeterminednumber-1 control loops.

The handling module 420 may determine whether the average SWA ROC 416 isless than the second predetermined ROC at 624. If 624 is true, thehandling module 420 may set the handling type 424 to understeer at 628,and control transfer to 644, which is discussed further below. If 624 isfalse, control may continue with 632. The handling module 420 maydetermine whether the average SWA ROC 416 is greater than the firstpredetermined ROC at 632. If 632 is true, the handling module 420 mayset the handling type 424 to oversteer at 636, and control may transferto 644. If 632 is false, the handling module 420 may set the handlingtype 424 to neutral at 640, and control may continue with 644.

At 644, the skill level module 448 may determine whether the averageskill value 444 is less than the second predetermined value. If 644 istrue, the skill level module 448 may set the skill level 452 to noviceat 648, and control may transfer to 664, which is discussed furtherbelow. If 644 is false, control may continue with 652.

At 652, the skill level module 448 may determine whether the averageskill value 444 is greater than the first predetermined value. If 652 istrue, the skill level module 448 may set the skill level 452 to expertat 656, and control may transfer to 664. If 652 is false, the skilllevel module 448 may set the skill level 452 to skilled at 660, andcontrol may continue with 664. At 664, the classification generationmodule 456 may generate the classification 324 of the driver to includethe handling type 424 of the driver and/or the skill level 452. Whilethe example of FIG. 6 is shown as ending, FIG. 6 may be illustrative ofone control loop and control may begin a control loop each predeterminedperiod. The classification 324 of the driver is used as discussedfurther below.

Referring back to FIG. 3, a base module 340 sets base targets (values)344 for the dynamics actuators 204, respectively, based on theclassification 324. For example, the base module 340 may set the basetargets 344 to a first predetermined set of the base targets when theclassification 324 indicates no classification. The base module 340 mayset the base targets 344 to a second predetermined set of the basetargets when the classification 324 indicates novice. The base module340 may set the base targets 344 to a third predetermined set of thebase targets when the classification 324 indicates skilled andundersteer. The base module 340 may set the base targets 344 to a fourthpredetermined set of the base targets when the classification 324indicates skilled and neutral. The base module 340 may set the basetargets 344 to a fifth predetermined set of the base targets when theclassification 324 indicates skilled and oversteer. The base module 340may set the base targets 344 to a sixth predetermined set of the basetargets when the classification 324 indicates expert and understeer. Thebase module 340 may set the base targets 344 to a seventh predeterminedset of the base targets when the classification 324 indicates expert andneutral. The base module 340 may set the base targets 344 to an eighthpredetermined set of the base targets when the classification 324indicates expert and oversteer. In general, one predetermined set ofbase targets may be provided and selected for each possible combinationof classification, including skill level and handling type.

An actuator control module 348 adjusts the base targets 344 based ontarget adjustments 352 to produce final targets, respectively. Forexample, the actuator control module 348 may sum or multiply the basetargets 344 with/by the target adjustments 352, respectively, to producethe final targets. Another suitable form of adjustment may also be used.The actuator control module 348 actuates the dynamics actuators 204 toachieve the final targets, respectively.

A closed loop module 356 sets the target adjustments 352. Morespecifically, when the track signal 308 is set to the second state, anadjustment module 360 sets the target adjustments 352 to predeterminednon-adjusting values. For example, the predetermined non-adjustingvalues may be zero (in the example of summing the target adjustments 352with the base targets 344) or one (in the example of multiplying thetarget adjustments 352 with the base targets 344).

Based on the target adjustments 352 being set to the predeterminednon-adjusting values, the actuator control module 348 will set the finaltargets to the base targets 344, respectively. When the track signal 308is set to the first state, the adjustment module 360 may set one, morethan one, or all of the target adjustments 352 to values other than thepredetermined non-adjusting value(s) as discussed further below. In thisway, control of the dynamics actuators 204 is tailored to the driver asopposed the base targets 344 which may be calibrated to accommodatedrivers of different skill levels and different handling types.

A target yaw module 362 determines a target yaw rate 364 for thevehicle. The target yaw module 362 may determine the target yaw rate364, for example, based on at least one of the lateral acceleration 316,the longitudinal acceleration 332, the SWA 328, the vehicle speed 312,and an accelerator pedal position (APP) 366. The target yaw module 362may determine the target yaw rate 364 as a function of the lateralacceleration, longitudinal acceleration, SWA, vehicle speed, and/or APPusing one or more equations or lookup tables that relate lateralacceleration, longitudinal acceleration, SWA, vehicle speed, and/or APPto target yaw rate. The APP 366 may be measured using one or more APPsensors or determined based on one or more other parameters. Anautonomous driver input may be used in place of APP.

A first error module 368 determines a yaw rate error 370 based on adifference between the target yaw rate 364 and a present yaw rate 372 ofthe vehicle. For example, the first error module 368 may set the yawrate error 370 based on or equal to the target yaw rate 364 minus thepresent yaw rate 372 or the present yaw rate 372 minus the target yawrate 364. The present yaw rate 372 may be measured using one or moresensors or determined based on one or more other parameters.

An averaging module 374 determines an average yaw rate error 376 basedon an average of a plurality of the values of the yaw rate error 370.For example, the averaging module 374 may set the average yaw rate error376 based on or equal to an average of a most recent predeterminednumber of values of the yaw rate error 370. The averaging module 374may, for example, sum the predetermined number of the most recent valuesof average yaw rate error 376 and divide the sum by the predeterminednumber.

A second error module 378 determines a yaw error error (YEE) 380 basedon a difference between the average yaw rate error 376 and a target yawerror 382. For example, the second error module 378 may set the YEE 380based on or equal to the target yaw error 382 minus the average yaw rateerror 376 or the average yaw rate error 376 minus the target yaw error382.

A target yaw error module 384 sets the target yaw error 382 based on theclassification 324 of the driver. For example only, the target yaw errormodule 384 may set the target yaw error 382 to a first predetermined yawerror when the classification 324 indicates that the skill level of thedriver is novice. The target yaw error module 384 may set the target yawerror 382 to a second predetermined yaw error when the classification324 indicates that the skill level of the driver is skilled. The targetyaw error module 384 may set the target yaw error 382 to a thirdpredetermined yaw error when the classification 324 indicates that theskill level of the driver is expert. The first predetermined yaw errormay be less than the second predetermined yaw error, and the secondpredetermined yaw error may be less than the third predetermined yawerror. This may allow for a greater range of control of one or more ofthe dynamics actuators 204 as the skill level of the driver becomes moreskilled. The target yaw error 382 is a target value for the average yawrate error 376 given the skill level of the driver.

The target yaw error module 384 may also determine the predetermined yawerror based on the handling type. For example, one set predetermined yawerror may be provided for each different possible skill level andhandling type, and the target yaw error module 384 may select one of thepredetermined yaw errors based on the skill level and handling type.

An integrator module 386 determines an accumulated error 388 byintegrating consecutive and/or non-consecutive values of the YEE 380.For example, when a new value of the YEE 380 is determined, theintegrator module 386 may determine a mathematical integral of or basedon a difference between the YEE 380 and the last value of the YEE 380.The integrator module 386 may then add the result of the integration tothe accumulated error 388 to update the accumulated error 388 based onthe new value of the YEE 380. In the example of consecutive values, thelast value of the YEE 380 may be the last determined value of the YEE380. In the example of non-consecutive values, the last value of the YEE380 may be the last used value of the YEE 380. Use of YEE values may bestopped or paused, for example, during approximately straight linedriving and/or low vehicle dynamics situations (e.g., when the tracksignal 308 is in the second state).

A scaling module 390 may determine a scaled error 392 based on theaccumulated error 388 and a scalar value 394. For example, the scalingmodule 390 may set the scaled error 392 based on or equal to theaccumulated error 388 multiplied by the scalar value 394. A scalarmodule 396 may determine the scalar value 394, for example, based on thevehicle speed 312. The scalar module 396 may determine the scalar value394, for example, as a function of the vehicle speed 312 using one of anequation and a lookup table that relates vehicle speeds to scalarvalues. In general, the scalar module 396 may increase the scalar value394 as the vehicle speed 312 increases and vice versa.

The adjustment module 360 increases one or more of the targetadjustments 352 to greater than the predetermined non-adjusting valueswhen both the YEE 380 is greater than a predetermined YEE threshold andthe scaled error 392 is greater than a predetermined error threshold.The predetermined YEE threshold and the predetermined error thresholdare collectively illustrated in FIG. 3 by 398. While the example ofincreasing one or more of the target adjustments 352 is discussed, thepresent application is also applicable to decreasing one or more of thetarget adjustments and, more generally, adjusting one or more of thetarget adjustments 352 away from the predetermined non-adjusting values.

The adjustment module 360 may set the target adjustments 352 based on apredetermined priority of use of the dynamics actuators 204. Thepredetermined priority may indicate to first actuate a first one of thedynamics actuators 204, to second actuate a second one of the dynamicsactuators 204, to third actuate a third one of the dynamics actuators204, etc. Based on the predetermined priority, when both the YEE 380 isgreater than the predetermined YEE threshold and the scaled error 392 isgreater than the predetermined error threshold, the adjustment module360 may first increase a first one of the target adjustments 352associated with the first one of the dynamics actuators 204. Theadjustment module 360 may increase the first one of the targetadjustments 352, for example, by a predetermined increment amount percontrol loop until an actuation capacity of the first one of thedynamics actuators 204 is reached. The adjustment module 360 may thenincrease a second one of the target adjustments 352 associated with thesecond one of the dynamics actuators 204. The adjustment module 360 mayincrease the second one of the target adjustments 352, for example, by apredetermined increment amount per control loop until an actuationcapacity of the second one of the dynamics actuators 204 is reached. Theadjustment module 360 may then increase a third one of the targetadjustments 352 associated with the third one of the dynamics actuators204. The adjustment module 360 may increase the third one of the targetadjustments 352, for example, by a predetermined increment amount percontrol loop until an actuation capacity of the third one of thedynamics actuators 204 is reached, and so on. The actuation capacitiesof the dynamics actuators 204 are collectively illustrated by 399.

When the YEE 380 is less than the predetermined YEE threshold and/or thescaled error 392 is less than the predetermined error threshold, theadjustment module 360 may decrease the target adjustments 352 toward thepredetermined non-adjusting values in the opposite order as thepredetermined priority. For example, the adjustment module 360 may firstdecrease a last one of the target adjustments 352 associated with thelast one of the dynamics actuators 204 in the predetermined priority.The adjustment module 360 may decrease the last one of the targetadjustments 352, for example, by a predetermined decrement amount percontrol loop until the last one of the target adjustments 352 reachesthe predetermined non-adjusting value. The adjustment module 360 maythen decrease a second to last one of the target adjustments 352associated with the second to last one of the dynamics actuators 204.The adjustment module 360 may decrease the second to last one of thetarget adjustments 352, for example, by a predetermined decrement amountper control loop until the second to last one of the target adjustments352 reaches the predetermined non-adjusting value, and so on. While theexample of decreasing one or more of the target adjustments 352 isdiscussed, the present application is also applicable to increasing oneor more of the target adjustments and, more generally, adjusting one ormore of the target adjustments 352 toward the predeterminednon-adjusting values.

A thresholds module 400 determines the predetermined YEE threshold andthe predetermined error threshold based on the classification 324 of thedriver. For example only, the thresholds module 400 may set thepredetermined YEE threshold and the predetermined error threshold to afirst predetermined YEE threshold and a first predetermined errorthreshold, respectively, when the classification 324 indicates that theskill level of the driver is novice. The thresholds module 400 may setthe predetermined YEE threshold and the predetermined error threshold toa second predetermined YEE threshold and a second predetermined errorthreshold, respectively, when the classification 324 indicates that theskill level of the driver is skilled. The thresholds module 400 may setthe predetermined YEE threshold and the predetermined error threshold toa third predetermined YEE threshold and a third predetermined errorthreshold, respectively, when the classification 324 indicates that theskill level of the driver is expert.

The third predetermined YEE threshold and the third predetermined errorthreshold may be less than the second predetermined YEE threshold andthe second predetermined error threshold, respectively. The secondpredetermined YEE threshold and the second predetermined error thresholdmay be less than the first predetermined YEE threshold and the firstpredetermined error threshold, respectively. This may allow adjustmentof the dynamics actuators 204, based on the target adjustments 352,sooner as the skill level of the driver becomes more skilled. While theorder of priority based example is provided, multiple of the dynamicsactuators 204 may be adjusted per control loop and the adjustment module360 may command adjustment of the dynamics actuators 204 in other ways.

The thresholds module 400 may determine the predetermined YEE thresholdand the predetermined error threshold additionally or alternativelybased on the handling type. For example, one set of predetermined YEEthreshold and predetermined error threshold may be provided for eachdifferent possible skill level and handling type, and the thresholdsmodule 400 may select one of the sets based on the skill level andhandling type. While the example of use of yaw rate is described herein,yaw angle may be used in place of yaw rate.

FIG. 7 is a flowchart depicting an example method of selectivelyadjusting and controlling the dynamics actuators 204 of the vehicle.Control may begin with 704 where the closed loop module 356 determineswhether the track signal 308 is in the first state. If 704 is true,control may continue with 708. If 704 is false, actuator control module348 may control actuation of the dynamics actuators 204 based on thebase targets 344 and control may end. The adjustment module 360 may setthe target adjustments 352 to the predetermined non-adjusting values toaccomplish this.

At 708, based on the classification 324 of the driver, the target yawerror module 384 may determine the target yaw error 382 and thethresholds module 400 may determine the predetermined YEE threshold andthe predetermined error threshold. The scalar module 396 may alsodetermine the scalar value 394 based on the vehicle speed 312 at 708.

The target yaw module 362 determines the target yaw rate 364 at 712. Thetarget yaw module 362 determines the target yaw rate 364 based on thelateral acceleration 316, the longitudinal acceleration 332, the SWA328, the APP 366, and/or the vehicle speed 312. The first error module368 determines the yaw rate error 370 at 716 based on a differencebetween the target yaw rate 364 and the present yaw rate 372.

At 720, the averaging module 374 determines the average yaw rate error376 by averaging the predetermined number of yaw rate errors includingthe yaw rate error 370 determined at 716 and the predetermined number-1yaw rate errors 370 from the last predetermined number-1 control loops.The second error module 378 determines the YEE 380 at 724 based on adifference between the target yaw error 382 and the average yaw rateerror 376.

The integrator module 386 may determine a mathematical integral of adifference between the YEE 380 determined at 728 and a last value of theYEE 380 from a last control loop. The integrator module 386 may sum theresult with a last value of the accumulated error 388 from a lastcontrol loop to determine/update the accumulated error 388 for thepresent control loop.

At 732, the scaling module 390 determines the scaled error 392 based onthe accumulated error 388 and the scalar value 394. For example, thescaling module 390 may set the scaled error 392 based on or equal to theaccumulated error 388 multiplied by the scalar value 394.

The adjustment module 360 may determine whether the YEE 380 and thescaled error 392 are greater than the predetermined YEE threshold andthe predetermined error threshold, respectively, at 736. If both aretrue at 736, control may continue with 740. If one or more of theconditions are false at 736, control may transfer to 748, which isdiscussed further below.

At 740, the adjustment module 360 may determine which one or more of thedynamics actuators 204 to adjust. For example, the adjustment module 360may select one of the dynamics actuators 204 having a highest priorityin the predetermined priority that is not presently at its actuationcapacity. The adjustment module 360 may adjust the target adjustments352 of the selected ones of the dynamics actuators 204 (e.g., increment)away from the predetermined non-adjusting values at 744, and controlcontinues with 756, which is discussed further below. At 748, theadjustment module 360 may determine which one or more of the dynamicsactuators 204 to adjust. For example, the adjustment module 360 mayselect one of the dynamics actuators 204 having a lowest priority in thepredetermined priority having an associated one of the targetadjustments 352 that is not presently at the predetermined non-adjustingvalue. The adjustment module 360 may adjust the target adjustments 352of the selected ones of the dynamics actuators 204 (e.g., decrement)toward the predetermined non-adjusting values at 752, and controlcontinues with 756.

At 756, the actuator control module determines the final targets for thedynamics actuators 204 based on the base targets 344 and the targetadjustments 352, respectively. For example, the actuator control module348 may sum or multiply the base targets 344 with the respective targetadjustments 352. The actuator control module 348 controls actuation ofthe dynamics actuators 204 based on the respective final targets at 760,and control may end. While the example of FIG. 7 is shown as ending,FIG. 7 may be illustrative of one control loop and control may begin acontrol loop each predetermined period. FIG. 7 be executed in parallelwith FIG. 6.

The foregoing description is merely illustrative in nature and is in noway intended to limit the disclosure, its application, or uses. Thebroad teachings of the disclosure can be implemented in a variety offorms. Therefore, while this disclosure includes particular examples,the true scope of the disclosure should not be so limited since othermodifications will become apparent upon a study of the drawings, thespecification, and the following claims. It should be understood thatone or more steps within a method may be executed in different order (orconcurrently) without altering the principles of the present disclosure.Further, although each of the embodiments is described above as havingcertain features, any one or more of those features described withrespect to any embodiment of the disclosure can be implemented in and/orcombined with features of any of the other embodiments, even if thatcombination is not explicitly described. In other words, the describedembodiments are not mutually exclusive, and permutations of one or moreembodiments with one another remain within the scope of this disclosure.

Spatial and functional relationships between elements (for example,between modules, circuit elements, semiconductor layers, etc.) aredescribed using various terms, including “connected,” “engaged,”“coupled,” “adjacent,” “next to,” “on top of,” “above,” “below,” and“disposed.” Unless explicitly described as being “direct,” when arelationship between first and second elements is described in the abovedisclosure, that relationship can be a direct relationship where noother intervening elements are present between the first and secondelements, but can also be an indirect relationship where one or moreintervening elements are present (either spatially or functionally)between the first and second elements. As used herein, the phrase atleast one of A, B, and C should be construed to mean a logical (A OR BOR C), using a non-exclusive logical OR, and should not be construed tomean “at least one of A, at least one of B, and at least one of C.”

In the figures, the direction of an arrow, as indicated by thearrowhead, generally demonstrates the flow of information (such as dataor instructions) that is of interest to the illustration. For example,when element A and element B exchange a variety of information butinformation transmitted from element A to element B is relevant to theillustration, the arrow may point from element A to element B. Thisunidirectional arrow does not imply that no other information istransmitted from element B to element A. Further, for information sentfrom element A to element B, element B may send requests for, or receiptacknowledgements of, the information to element A.

In this application, including the definitions below, the term “module”or the term “controller” may be replaced with the term “circuit.” Theterm “module” may refer to, be part of, or include: an ApplicationSpecific Integrated Circuit (ASIC); a digital, analog, or mixedanalog/digital discrete circuit; a digital, analog, or mixedanalog/digital integrated circuit; a combinational logic circuit; afield programmable gate array (FPGA); a processor circuit (shared,dedicated, or group) that executes code; a memory circuit (shared,dedicated, or group) that stores code executed by the processor circuit;other suitable hardware components that provide the describedfunctionality; or a combination of some or all of the above, such as ina system-on-chip.

The module may include one or more interface circuits. In some examples,the interface circuits may include wired or wireless interfaces that areconnected to a local area network (LAN), the Internet, a wide areanetwork (WAN), or combinations thereof. The functionality of any givenmodule of the present disclosure may be distributed among multiplemodules that are connected via interface circuits. For example, multiplemodules may allow load balancing. In a further example, a server (alsoknown as remote, or cloud) module may accomplish some functionality onbehalf of a client module.

The term code, as used above, may include software, firmware, and/ormicrocode, and may refer to programs, routines, functions, classes, datastructures, and/or objects. The term shared processor circuitencompasses a single processor circuit that executes some or all codefrom multiple modules. The term group processor circuit encompasses aprocessor circuit that, in combination with additional processorcircuits, executes some or all code from one or more modules. Referencesto multiple processor circuits encompass multiple processor circuits ondiscrete dies, multiple processor circuits on a single die, multiplecores of a single processor circuit, multiple threads of a singleprocessor circuit, or a combination of the above. The term shared memorycircuit encompasses a single memory circuit that stores some or all codefrom multiple modules. The term group memory circuit encompasses amemory circuit that, in combination with additional memories, storessome or all code from one or more modules.

The term memory circuit is a subset of the term computer-readablemedium. The term computer-readable medium, as used herein, does notencompass transitory electrical or electromagnetic signals propagatingthrough a medium (such as on a carrier wave); the term computer-readablemedium may therefore be considered tangible and non-transitory.Non-limiting examples of a non-transitory, tangible computer-readablemedium are nonvolatile memory circuits (such as a flash memory circuit,an erasable programmable read-only memory circuit, or a mask read-onlymemory circuit), volatile memory circuits (such as a static randomaccess memory circuit or a dynamic random access memory circuit),magnetic storage media (such as an analog or digital magnetic tape or ahard disk drive), and optical storage media (such as a CD, a DVD, or aBlu-ray Disc).

The apparatuses and methods described in this application may bepartially or fully implemented by a special purpose computer created byconfiguring a general purpose computer to execute one or more particularfunctions embodied in computer programs. The functional blocks,flowchart components, and other elements described above serve assoftware specifications, which can be translated into the computerprograms by the routine work of a skilled technician or programmer.

The computer programs include processor-executable instructions that arestored on at least one non-transitory, tangible computer-readablemedium. The computer programs may also include or rely on stored data.The computer programs may encompass a basic input/output system (BIOS)that interacts with hardware of the special purpose computer, devicedrivers that interact with particular devices of the special purposecomputer, one or more operating systems, user applications, backgroundservices, background applications, etc.

The computer programs may include: (i) descriptive text to be parsed,such as HTML (hypertext markup language) or XML (extensible markuplanguage), (ii) assembly code, (iii) object code generated from sourcecode by a compiler, (iv) source code for execution by an interpreter,(v) source code for compilation and execution by a just-in-timecompiler, etc. As examples only, source code may be written using syntaxfrom languages including C, C++, C#, Objective C, Haskell, Go, SQL, R,Lisp, Java®, Fortran, Perl, Pascal, Curl, OCaml, Javascript®, HTML5,Ada, ASP (active server pages), PHP, Scala, Eiffel, Smalltalk, Erlang,Ruby, Flash®, Visual Basic®, Lua, and Python®.

None of the elements recited in the claims are intended to be ameans-plus-function element within the meaning of 35 U.S.C. § 112(f)unless an element is expressly recited using the phrase “means for,” orin the case of a method claim using the phrases “operation for” or “stepfor.”

What is claimed is:
 1. A vehicle control system comprising: a first error module that determines a first yaw error based on a difference between a yaw rate of the vehicle and a target yaw rate; an averaging module that determines an average of a plurality of values of the first yaw error; a second error module that determines a second yaw error based on a difference between the average and a target yaw error; a target yaw error module that sets the target yaw error based on a skill level of a driver of the vehicle; an adjustment module that selectively one of increases and decreases a target adjustment when the second yaw error is greater than a first predetermined threshold; and an actuator control module that, in response to the increase in the target adjustment, actuates a dynamics actuator of the vehicle.
 2. The vehicle control system of claim 1 further comprising a thresholds module that determines the first predetermined threshold based on the skill level of the driver.
 3. The vehicle control system of claim 1 further comprising a target yaw module that determines the target yaw rate of the vehicle based on at least one of (i) a lateral acceleration of the vehicle, (i) a longitudinal acceleration of the vehicle, (iii) a steering wheel angle, (iv) an accelerator pedal position, and (v) a vehicle speed.
 4. The vehicle control system of claim 1 wherein the skill level of the driver is selected from a group comprising a first skill level, a second skill level indicative of a greater level of skill than the first skill level, and a third skill level indicative of a greater level of skill than the second skill level.
 5. The vehicle control system of claim 1 wherein the target yaw error module sets the target yaw error further based on a handling type of the vehicle.
 6. The vehicle control system of claim 5 wherein the handling type is selected from a group consisting of oversteer, understeer, and neutral.
 7. The vehicle control system of claim 1 further comprising: an integrator module that determines an accumulated error based on a mathematical integral based on the second yaw error; and a scaling module that determines a scaled error based on a product of the accumulated error and a scalar value, wherein the adjustment module selectively one of increases and decreases the target adjustment in response to determinations that both (i) the second yaw error is greater than the first predetermined threshold and (ii) the scaled error is greater than a second predetermined threshold.
 8. The vehicle control system of claim 7 further comprising a thresholds module that, based on the skill level of the driver, determines both the first predetermined threshold and the second predetermined threshold.
 9. The vehicle control system of claim 1 wherein the dynamic actuator includes one of: an electronic limited slip differential; an electronic power steering motor; an automatic braking system (ABS) actuator; a ride control actuator; and an aerodynamic actuator.
 10. A vehicle control method comprising: determining a first yaw error based on a difference between a yaw rate of the vehicle and a target yaw rate; determining an average of a plurality of values of the first yaw error; determining a second yaw error based on a difference between the average and a target yaw error; setting the target yaw error based on a skill level of a driver of the vehicle; selectively one of increasing and decreasing a target adjustment when the second yaw error is greater than a first predetermined threshold; and, in response to the increase in the target adjustment, actuating a dynamics actuator of the vehicle.
 11. The vehicle control method of claim 10 further comprising determining the first predetermined threshold based on the skill level of the driver.
 12. The vehicle control method of claim 10 further comprising determining the target yaw rate of the vehicle based on at least one of (i) a lateral acceleration of the vehicle, (i) a longitudinal acceleration of the vehicle, (iii) a steering wheel angle, (iv) an accelerator pedal position, and (v) a vehicle speed.
 13. The vehicle control method of claim 10 further comprising selecting the skill level of the driver from a group comprising a first skill level, a second skill level indicative of a greater level of skill than the first skill level, and a third skill level indicative of a greater level of skill than the second skill level.
 14. The vehicle control method of claim 10 wherein setting the target yaw error includes setting the target yaw error further based on a handling type of the vehicle.
 15. The vehicle control method of claim 14 further comprising selecting the handling type from a group consisting of oversteer, understeer, and neutral.
 16. The vehicle control method of claim 10 further comprising: determining an accumulated error based on a mathematical integral based on the second yaw error; and determining a scaled error based on a product of the accumulated error and a scalar value, wherein selectively one of increasing and decreasing the target adjustment includes selectively one of increasing and decreasing the target adjustment in response to determinations that both (i) the second yaw error is greater than the first predetermined threshold and (ii) the scaled error is greater than a second predetermined threshold.
 17. The vehicle control method of claim 16 further comprising, based on the skill level of the driver, determining both the first predetermined threshold and the second predetermined threshold.
 18. The vehicle control method of claim 10 wherein the dynamic actuator includes one of: an electronic limited slip differential; an electronic power steering motor; an automatic braking system (ABS) actuator; a ride control actuator; and an aerodynamic actuator. 